/*
* Copyright 1999
*
* Chris Seguin
* All rights reserved
*/
import org.acm.seguin.metrics.CommaDelimitedReport;
import org.acm.seguin.metrics.GatherData;
import org.acm.seguin.metrics.MetricsReport;
import org.acm.seguin.metrics.ProjectMetrics;
import org.acm.seguin.metrics.TextReport;
import org.acm.seguin.summary.SummaryTraversal;
import org.acm.seguin.summary.load.LoadStatus;
import org.acm.seguin.summary.load.SilentLoadStatus;
import org.acm.seguin.summary.load.TextLoadStatus;
import org.acm.seguin.tools.install.RefactoryInstaller;
/**
* Gathers metrics data
*
*@author Chris Seguin
*@created July 25, 1999
*/
public class Metrics {
/**
* Main program
*
*@param args the command line arguments
*/
public static void main(String[] args) {
// Make sure everything is installed properly
(new RefactoryInstaller(false)).run();
// Local Variables
String startDir = System.getProperty("user.dir");
int type = 0;
LoadStatus status = new TextLoadStatus();
// Process command line arguments
int argIndex = 0;
while (argIndex < args.length) {
if (args[argIndex].equals("-help")) {
System.out.println("Syntax: java Metrics [-text|-comma] [dir]");
return;
}
else if (args[argIndex].equals("-text")) {
type = 0;
argIndex++;
}
else if (args[argIndex].equals("-comma")) {
type = 1;
argIndex++;
}
else if (args[argIndex].equals("-quiet")) {
status = new SilentLoadStatus();
argIndex++;
}
else {
startDir = args[argIndex];
argIndex++;
}
}
// Gather the summary
(new SummaryTraversal(startDir, status)).go();
// Now print everything
MetricsReport metricsReport;
if (type == 0) {
metricsReport = new TextReport();
}
else {
metricsReport = new CommaDelimitedReport();
}
GatherData visitor = new GatherData(metricsReport);
ProjectMetrics projectData = (ProjectMetrics) visitor.visit("");
metricsReport.finalReport(projectData);
}
}